<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>2-4 绘制一个点</title>
  <script src="../lib/index.js"></script>
</head>
<body>
  <!-- webgl -->
  <canvas id="webgl" width="400" height="400">
    此浏览器不支持canvas
  </canvas>

  <script>
    const ctx1 = document.getElementById('webgl');
    const gl = ctx1.getContext('webgl');

    /**
     * 创建着色器源码
     * */
    // 顶点着色器
    // gl_Position vec4(0.0, 0.0, 0.0, 1.0) x, y, z, w齐次坐标（x/w, y/w, z/w）
    const VERTEX_SHADER_SOURCE = `
      // 必须要存在 main 函数
      void main() {
        // 要绘制的点的坐标
        gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
        // 点的大小
        gl_PointSize = 30.0;
      }
    `;

    // 片元着色器
    // gl_FragColor vec4(1.0, 0.0, 0.0, 1.0) r, b, g, a
    const FRAGMENT_SHADER_SOURCE = `
      void main() {
        gl_FragColor = vec4(1.0, 0.0, 0.0, 1.0);
      }
    `;

    /**
     * 创建着色器
     * */
    const program = initShader(gl, VERTEX_SHADER_SOURCE, FRAGMENT_SHADER_SOURCE);

    /**
     * 执行绘制
     * */
    // 要绘制的图形是什么，从哪个开始、使用几个顶点
    gl.drawArrays(gl.POINTS, 0, 1);
    // gl.drawArrays(gl.LINES, 0, 2);         // 线段至少需要两个点
    // gl.drawArrays(gl.TRIANGLES, 0, 3);     // 三角形需要3个点
  </script>
</body>
</html>